SIP Message Normalization
The device supports a built-in SIP message normalization feature that can be enabled per manipulation rule. This is enabled by configuring the 'Action Type' field to Normalize. Normalization removes unknown or non-standard SIP message elements before forwarding the message. These elements can include SIP headers, SIP header parameters, and SDP body fields. Message normalization is typically configured per SIP header, but can also be configured for all headers (including SDP).
The device normalizes the following SIP elements:
|
■
|
URL: You can normalize the URL of SIP headers, which is enclosed in angled <...> brackets. |
For example:
|
●
|
Before normalization - URL contains a non-standard user part "phone-context=1" and an unknown parameter "UnknownUrlParam": |
<sip:+1-800-229-229;phone-context=1@10.33.2.17;user=phone;UnknownUrlParam>
|
●
|
After normalization - non-standard user part "phone-context=1" and an unknown parameter "UnknownUrlParam" are removed: |
<sip:+1800229229@10.33.2.17;user=phone>
Configuration: To normalize only the URL of a SIP header (e.g., To):
|
●
|
'Action Subject' field: Header.To.Url |
|
●
|
'Action Type' field: Normalize |
|
■
|
Non-URL part: For SIP headers that contain a URL, you can normalize everything outside of the URL (i.e., not enclosed in angled <...> brackets). |
For example:
|
●
|
Before normalization - an unknown parameter "UnknownHeaderlParam" outside the URL: |
To: <sip:100;phone-context=1@10.33.2.17;user=phone;UnknownUrlParam>;UnknownHeaderlParam
|
●
|
After normalization - unknown parameter removed: |
To: <sip:100;phone-context=1@10.33.2.17;user=phone;UnknownUrlParam>
Configuration:
|
●
|
'Action Subject' field: header.<header name> (e.g., header.to) |
|
●
|
'Action Type' field: Normalize |
|
●
|
Alert-Info: unknown header parameters are removed |
|
●
|
P-Called-Party-ID: unknown header parameters are removed, URL is normalized |
|
●
|
P-Charging-Vector: unknown header parameters are removed |
|
●
|
P-Associated-URI: unknown header parameters are removed, URL is normalized |
|
●
|
P-Preferred-Identity: URL is normalized |
|
●
|
Diversion: unknown header parameters are removed, URL is normalized |
|
●
|
P-Asserted-Identity: URL is normalized |
|
●
|
Privacy: unknown header parameters are removed |
|
●
|
Remote-Party-ID: unknown header parameters are removed, URL is normalized |
|
●
|
Reason: unknown header parameters are removed |
|
●
|
Max-Forwards: value is changed to 70 |
|
●
|
History-Info: unknown header parameters are removed, URL is normalized |
|
●
|
From: unknown header parameters are removed, URL is normalized |
|
●
|
To: unknown header parameters are removed, URL is normalized |
|
●
|
Via: unknown header parameters are removed |
|
●
|
Refer-To: unknown header parameters are removed, URL is normalized |
|
●
|
Referred-By: unknown header parameters are removed, URL is normalized |
|
●
|
Event: unknown header parameters are removed |
|
●
|
Session-Expires: unknown header parameters are removed |
|
●
|
Min-SE: unknown header parameters are removed |
|
●
|
Min-Expires: unknown header parameters are removed |
|
●
|
Request-URI: URL is normalized |
|
●
|
Contact: unknown header parameters are removed |
|
●
|
Subscription-State: unknown header parameters are removed |
Configuration:
|
●
|
'Action Subject' field: header.<header name> (e.g., header.min-expires) |
|
●
|
'Action Type' field: Normalize |
For SIP headers that contain a URL (e.g., Contact, Diversion, and Referred-By), to normalize the URL (i.e., everything enclosed in angled <...> brackets), use the following syntax for the 'Action Subject' field: Header.<header name>.Url (e.g., Header.Contact.Url). To normalize everything except the URL (i.e., everything outside of <...>), use this syntax: Header.<header name> (e.g., Header.Contact). For more information, see the descriptions above for URL and non-URL normalization.
|
■
|
SDP Body: Removes unnecessary SDP fields (except v=, o=, s=, c=, t=, and r=) and unknown media with all its attributes. For example, the bold is removed before sending the message: |
v=0
o=SMG 791285 795617 IN IP4 10.33.2.17
s=Phone-Call
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 10.33.2.26
t=0 0
m=unknown 6000 RTP/AVP 8
a=unknown
a=sendrecv
a=ptime:20
m=audio 6000 RTP/AVP 8
a=rtpmap:8 pcma/8000
a=sendrecv
a=unknown
a=ptime:20
Configuration:
|
●
|
'Action Subject' field: body.sdp |
|
●
|
'Action Type' field: Normalize |
|
■
|
Message: Normalization of the entire message. Headers and bodies not listed below are removed while those listed are retained and normalized (if necessary and if listed as supported for normalization, as previously mentioned): |
Configuration:
|
●
|
'Action Subject' field: message |
|
●
|
'Action Type' field: Normalize |
Configuration Examples:
Normalization Examples
|
|
|
|
invite
|
message
|
Normalize
|
Normalizes the entire SIP message (headers and SDP) in INVITE messages.
|
invite
|
body.sdp
|
Normalize
|
Normalizes only the SDP body in INVITE messages.
|
invite
|
header.max-forwards
|
Normalize
|
Normalizes the Max-Forwards header in INVITE messages.
|
invite
|
header.contact.url
|
Normalize
|
Normalizes only the URL of the Contact header in INVITE messages.
|